速報APP / 教育 / Bluetooth arduino Control Tank

Bluetooth arduino Control Tank

價格:免費

更新日期:2017-09-09

檔案大小:2.9M

目前版本:1.0

版本需求:Android 4.0.3 以上版本

官方網站:https://www.ardobot.com

Email:ventas@ardobot.com

聯絡地址:Medellin, Antioquia Colombia Cra 79 No 37 - 07 OF 401

Bluetooth arduino Control Tank(圖1)-速報App

Con esta aplicación podemos manejar cualquier vehículo a control remoto Bluetooth que utilice la plataforma Arduino o una similar. Podemos realizar funciones básicas de dirección como:, izquierda, derecha, adelante y atrás. Incorporamos la posibilidad de adquirir la distancia a la que se encuentre tu plataforma robótica de un objeto añadiendo el sensor de distancia ultrasonido HC-SR04

Encuentra el conexionado en nuestro sitio web www.ardobot.com Seccion aprende

//Declaración de variables para el sensor HC-SR04

const int Trigger = 3; //Pin digital 2 para el Trigger del sensor

const int Echo = 2; //Pin digital 3 para el Echo del sensor

long t; //timepo que demora en llegar el eco

long d; //distancia en centimetros

//Declaración de variables para el uso del Driver Motor L298N,

int EnableM1 = 6;

int Dir1M1 = 7;

int Dir2M1 = 8;

int EnableM2 =11;

int Dir1M2 =10;

int Dir2M2 =9;

int contador = 0;

void setup() {

Serial.begin(9600);//iniciailzamos la comunicación

// Pines para el Modulo Sensor HC-SR04

pinMode(Trigger, OUTPUT); //pin como salida

pinMode(Echo, INPUT); //pin como entrada

digitalWrite(Trigger, LOW);//Inicializamos el pin con 0

// Pines para el driver Motor L298N

pinMode(EnableM1,OUTPUT);

pinMode(Dir1M1,OUTPUT);

pinMode(Dir2M1,OUTPUT);

pinMode(EnableM2,OUTPUT);

pinMode(Dir1M2,OUTPUT);

pinMode(Dir2M2,OUTPUT);

}

void loop()

{

control();

contador=contador+1; //Establecer un contador

if (contador = 700){

distancia();

}

}

void M1back(){ // Motor Izquierdo atras

digitalWrite(EnableM1,HIGH);

digitalWrite(Dir1M1,HIGH);

digitalWrite(Dir2M1,LOW);}

void M1forward(){ // Motor Izquierdo adelante

digitalWrite(EnableM1,HIGH);

digitalWrite(Dir1M1,LOW);

digitalWrite(Dir2M1,HIGH);}

void M2forward(){ // Motor Derecho adelante

digitalWrite(EnableM2,HIGH);

digitalWrite(Dir1M2,LOW);

digitalWrite(Dir2M2,HIGH);}

void M2back(){ // Motor Derecho atras

digitalWrite(EnableM2,HIGH);

digitalWrite(Dir1M2,HIGH);

digitalWrite(Dir2M2,LOW);}

Bluetooth arduino Control Tank(圖2)-速報App

void Freno(){ // Freno de los motores

digitalWrite(EnableM2,LOW);

digitalWrite(Dir1M2,LOW);

digitalWrite(Dir2M2,LOW);

digitalWrite(EnableM1,LOW);

digitalWrite(Dir1M1,LOW);

digitalWrite(Dir2M1,LOW);

}

void control(){

if (Serial.available() > 0) {

int App = Serial.read(); // declaramos el dato que recibimos de la APP o del Puerto Serial

switch (App) {

case 's':

M1forward(); // SOLO UN MOTOR ADELANTE

break;

case 'w':

M1back(); // SOLO UN MOTOR ATRAS

break;

case 'd':

M2forward(); // SOLO UN MOTOR ADELANTE

break;

case 'a':

M2back(); // SOLO UN MOTOR ATRAS

break;

case 'f':

Freno();

break;

case 'q': // ADELANTE COMBINANDO MORORES

M1forward();

M2forward();

break;

case 'b': // ATRAS COMBINANDO MOTORES

M1back();

M2back();

break;

case 't': // GIRO COMPLETO DERECHO

M1forward();

M2back();

break;

case 'y': // GIRO COMPLETO DERECHO

M1back();

M2forward();

break;

}

}

}

void distancia(){

digitalWrite(Trigger, HIGH);

delayMicroseconds(10); //Enviamos un pulso de 10us

digitalWrite(Trigger, LOW);

t = pulseIn(Echo, HIGH); //obtenemos el ancho del pulso

d = t/59; //escalamos el tiempo a una distancia en cm

Serial.println(d); //Enviamos serialmente el valor de la distancia

//delay(100); //Hacemos una pausa de 100ms

Bluetooth arduino Control Tank(圖3)-速報App

}